package cn.tedu.baking.mapper;

import cn.tedu.baking.pojo.entity.Content;
import cn.tedu.baking.pojo.vo.ContentAdminVO;
import cn.tedu.baking.pojo.vo.ContentManagementVO;
import cn.tedu.baking.pojo.vo.ContentSimpleVO;
import cn.tedu.baking.pojo.vo.ContentUpdateVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface ContentMapper {
    //发布稿件（向t_content表插入数据）
    int insert(Content content);
    //根据分类查询稿件内容的查询方法
    List<ContentManagementVO> selectByType(Integer type,Long id);
    //修改稿件内容
    int update(Content content);
    //根据id先查询原稿件数据   (为修改做准备)
    ContentUpdateVO selectByIdForUpdate(Long id);

    //根据id删除稿件
    int deleteById(Long id);
    /**
     * 根据稿件id修改稿件的浏览量
     *
     * @param id 稿件id
     * @return 修改的记录数
     */
    int updateViewCountById(Long id);
    /**
     * 根据作者id查询作者的其他稿件
     *
     * @param userId    作者id
     * @return 其他稿件信息
     */
    List<ContentSimpleVO> selectByUserId(Long userId);

    //查询热门稿件(访问量最高的前4条)
    List<ContentSimpleVO> selectHot();
    /**
     * 管理员界面根据一级分类查询稿件信息
     * @param type 一级分类
     * @return 稿件信息
     */
    List<ContentAdminVO> selectByTypeForAdmin(Integer type);





}
